package com.ciwong.epaper.modules.otherlogin;

import android.app.Activity;

import com.ciwong.epaper.modules.otherlogin.inf.OtherLoginListener;
import com.ciwong.epaper.modules.otherlogin.utils.LoginParamSharedUtil;

/**
 * 此类抽象出实现第三方登录授权所须要实现的变量,及方法 Created by res-dlzhou on 2015/9/2.
 */
public abstract class AbsOtherLogin
{
    /**
     * 上下文，用于初始相关
     */
    protected Activity mActivity;

    /**
     * 登录授权成功后结果系列化管理
     */
    protected LoginParamSharedUtil mParamSharedUtil;

    /**
     * 第三方登录相关配置信息
     */
    protected AbstractLoginConfig mLoginConfig;

    /**
     * 结果回调监听器
     */
    protected OtherLoginListener mListener;

    /**
     * 初始化第三方登录授权相关配置(使用第三方登录授权之前须调用此方法)
     * 
     * @param activity
     *            上下文
     * @param config
     *            客户端自己的配置信息
     * @param listener
     *            授权结果回调监听器
     */
    public abstract void initOtherLogin(Activity activity,
            AbstractLoginConfig config, OtherLoginListener listener);

    /**
     * 获取第三方登录相关配置信息
     * 
     * @return
     */
    public AbstractLoginConfig getLoginConfig()
    {
        // 默认配置信息
        if (mLoginConfig == null)
        {
            mLoginConfig = new LoginConfigImpl();
        }
        return mLoginConfig;
    }

    /**
     * 默认初始化配置
     */
    private class LoginConfigImpl extends AbstractLoginConfig
    {
        /**
         * 微信测试APP_ID
         */
        private static final String WEIXIN_APP_ID = "wx7e97dc6531f3cf94";

        /**
         * QQ登录测试ID
         */
        private static final String QQ_APP_ID = "1104752217";

        @Override
        public String getWeixinAppId()
        {
            return WEIXIN_APP_ID;
        }

        @Override
        public String getQQAppID()
        {
            return QQ_APP_ID;
        }
    }
}
